home *** CD-ROM | disk | FTP | other *** search
- unit Calend1;
- { a popup calendar }
- interface
-
- uses
- SysUtils, WinTypes, WinProcs, Messages, Classes, Graphics, Controls,
- Forms, Dialogs, Grids, Calendar, StdCtrls, ExtCtrls;
-
- type
- TCalForm = class(TForm)
- Calendar1: TCalendar;
- LastMonthBtn: TButton;
- NextMonthBtn: TButton;
- OKBtn: TButton;
- LastYearBtn: TButton;
- NextYearBtn: TButton;
- TodayBtn: TButton;
- Panel1: TPanel;
- DateLabel: TLabel;
- procedure Calendar1Change(Sender: TObject);
- procedure LastMonthBtnClick(Sender: TObject);
- procedure FormClose(Sender: TObject; var Action: TCloseAction);
- procedure FormCreate(Sender: TObject);
- procedure NextMonthBtnClick(Sender: TObject);
- procedure OKBtnClick(Sender: TObject);
- procedure LastYearBtnClick(Sender: TObject);
- procedure NextYearBtnClick(Sender: TObject);
- procedure TodayBtnClick(Sender: TObject);
- private
- { Private declarations }
- public
- { Public declarations }
- end;
-
- var
- CalForm: TCalForm;
-
- implementation
- uses ToDo1;
- {$R *.DFM}
-
- procedure TCalForm.Calendar1Change(Sender: TObject);
- var
- date_string, label_string,
- day_string, month_string, year_string : string;
- begin
- day_string := IntToStr(Calendar1.Day);
- month_string := IntToStr(Calendar1.Month);
- year_string := IntToStr(Calendar1.Year);
- { ShortDateFormat is a global constant indicating
- the international date format used by Windows.
- Possible values are: m/d/y, d/m/y, and y/m/d.
- This routine formats the date according to this
- constant. }
- case( upcase(ShortDateFormat[1]) ) of
- 'Y': date_string := year_string + '/' +
- month_string + '/' +
- day_string;
- 'M': date_string := month_string + '/' +
- day_string + '/' +
- year_string;
- else date_string := day_string + '/' +
- month_string + '/' +
- year_string;
- end; { case }
- Caption := FormatDateTime(ShortDateFormat, StrToDate(date_String));
-
- { show selected Month and year in label }
- case (Calendar1.Month) of
- 1: label_string := 'January';
- 2: label_string := 'February';
- 3: label_string := 'March';
- 4: label_string := 'April';
- 5: label_string := 'May';
- 6: label_string := 'June';
- 7: label_string := 'July';
- 8: label_string := 'August';
- 9: label_string := 'September';
- 10: label_string := 'October';
- 11: label_string := 'November';
- 12: label_string := 'December';
- end;
- DateLabel.Caption := label_string + ' ' + year_string;
- end;
-
- procedure TCalForm.LastMonthBtnClick(Sender: TObject);
- begin
- Calendar1.PrevMonth;
- end;
-
- procedure TCalForm.FormClose(Sender: TObject; var Action: TCloseAction);
- begin
- CalForm.Hide;
- ToDoForm.DateDueEditBox.Text := Caption;
- end;
-
- procedure TCalForm.FormCreate(Sender: TObject);
- begin
- { resize calendar around the panel object }
- ClientHeight := Panel1.Height;
- ClientWidth := Panel1.Width;
- Calendar1Change(Sender);
- end;
-
- procedure TCalForm.NextMonthBtnClick(Sender: TObject);
- begin
- Calendar1.NextMonth;
- end;
-
- procedure TCalForm.OKBtnClick(Sender: TObject);
- begin
- Close;
- end;
-
- procedure TCalForm.LastYearBtnClick(Sender: TObject);
- begin
- Calendar1.PrevYear;
- end;
-
- procedure TCalForm.NextYearBtnClick(Sender: TObject);
- begin
- Calendar1.NextYear;
- end;
-
- procedure TCalForm.TodayBtnClick(Sender: TObject);
- var
- Present: TDateTime;
- Year, Month, Day, Hour, Min, Sec, MSec: Word;
- begin
- Present:= Now;
- DecodeDate(Present, Year, Month, Day);
- Calendar1.Day := 1; { make sure the selected day is valid }
- Calendar1.Year := Year; { even if month is a short one! }
- Calendar1.Month := Month;
- Calendar1.Day := Day;
- end;
-
- end.
-